/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.mil.pamerj.projects.cardprinter.dao;

import br.mil.pamerj.projects.cardprinter.dto.PessoaDTO;
import com.tomasio.projects.organization.webservices.EfetivoWS;
import com.tomasio.projects.organization.webservices.EfetivoWSService;
import com.tomasio.projects.organization.webservices.FotoDTO;
import com.tomasio.projects.organization.webservices.MatriculaDTO;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author fernandofot
 */
public class SOAPPessoaDAO implements PessoaDAO {

    @Override
    public PessoaDTO find(Long id) {
        EfetivoWSService service = new EfetivoWSService();
        EfetivoWS port = service.getEfetivoWSPort();
        MatriculaDTO matricula = port.findMatricula(id);
        return convert(matricula);
    }

    @Override
    public List<PessoaDTO> findAll() {
        EfetivoWSService service = new EfetivoWSService();
        EfetivoWS port = service.getEfetivoWSPort();
        List<PessoaDTO> pessoas = new ArrayList<PessoaDTO>();
        List<MatriculaDTO> matriculas = port.findAllMatriculas();
        for (MatriculaDTO matriculaDTO : matriculas) {
            pessoas.add(convert(matriculaDTO));
        }
        return pessoas;

    }

    private PessoaDTO convert(MatriculaDTO matricula) {
        PessoaDTO pessoa = new PessoaDTO();
        pessoa.setNome(matricula.getPessoa().getNome());
        pessoa.setNomeGuerra(matricula.getPessoa().getNomeGuerra());
        pessoa.setCargo(matricula.getCargo());
        pessoa.setId(matricula.getId());
        if (matricula.getPessoa().getFotos() != null) {
            List<FotoDTO> fotos = matricula.getPessoa().getFotos();
            for (FotoDTO fotoDTO : fotos) {
                if (fotoDTO.isAvatar()) {
                    pessoa.setFoto(fotoDTO.getSource());
                }
            }
        }
        pessoa.setSetor("ABCD");
        return pessoa;
    }
}
